package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FMarginExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FMarginExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTradeDateIsNull() {
            addCriterion("trade_date is null");
            return (Criteria) this;
        }

        public Criteria andTradeDateIsNotNull() {
            addCriterion("trade_date is not null");
            return (Criteria) this;
        }

        public Criteria andTradeDateEqualTo(String value) {
            addCriterion("trade_date =", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotEqualTo(String value) {
            addCriterion("trade_date <>", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateGreaterThan(String value) {
            addCriterion("trade_date >", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateGreaterThanOrEqualTo(String value) {
            addCriterion("trade_date >=", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLessThan(String value) {
            addCriterion("trade_date <", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLessThanOrEqualTo(String value) {
            addCriterion("trade_date <=", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateLike(String value) {
            addCriterion("trade_date like", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotLike(String value) {
            addCriterion("trade_date not like", value, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateIn(List<String> values) {
            addCriterion("trade_date in", values, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotIn(List<String> values) {
            addCriterion("trade_date not in", values, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateBetween(String value1, String value2) {
            addCriterion("trade_date between", value1, value2, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andTradeDateNotBetween(String value1, String value2) {
            addCriterion("trade_date not between", value1, value2, "tradeDate");
            return (Criteria) this;
        }

        public Criteria andExchangeIdIsNull() {
            addCriterion("exchange_id is null");
            return (Criteria) this;
        }

        public Criteria andExchangeIdIsNotNull() {
            addCriterion("exchange_id is not null");
            return (Criteria) this;
        }

        public Criteria andExchangeIdEqualTo(String value) {
            addCriterion("exchange_id =", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdNotEqualTo(String value) {
            addCriterion("exchange_id <>", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdGreaterThan(String value) {
            addCriterion("exchange_id >", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdGreaterThanOrEqualTo(String value) {
            addCriterion("exchange_id >=", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdLessThan(String value) {
            addCriterion("exchange_id <", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdLessThanOrEqualTo(String value) {
            addCriterion("exchange_id <=", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdLike(String value) {
            addCriterion("exchange_id like", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdNotLike(String value) {
            addCriterion("exchange_id not like", value, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdIn(List<String> values) {
            addCriterion("exchange_id in", values, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdNotIn(List<String> values) {
            addCriterion("exchange_id not in", values, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdBetween(String value1, String value2) {
            addCriterion("exchange_id between", value1, value2, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andExchangeIdNotBetween(String value1, String value2) {
            addCriterion("exchange_id not between", value1, value2, "exchangeId");
            return (Criteria) this;
        }

        public Criteria andRzyeIsNull() {
            addCriterion("rzye is null");
            return (Criteria) this;
        }

        public Criteria andRzyeIsNotNull() {
            addCriterion("rzye is not null");
            return (Criteria) this;
        }

        public Criteria andRzyeEqualTo(Float value) {
            addCriterion("rzye =", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeNotEqualTo(Float value) {
            addCriterion("rzye <>", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeGreaterThan(Float value) {
            addCriterion("rzye >", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeGreaterThanOrEqualTo(Float value) {
            addCriterion("rzye >=", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeLessThan(Float value) {
            addCriterion("rzye <", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeLessThanOrEqualTo(Float value) {
            addCriterion("rzye <=", value, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeIn(List<Float> values) {
            addCriterion("rzye in", values, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeNotIn(List<Float> values) {
            addCriterion("rzye not in", values, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeBetween(Float value1, Float value2) {
            addCriterion("rzye between", value1, value2, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzyeNotBetween(Float value1, Float value2) {
            addCriterion("rzye not between", value1, value2, "rzye");
            return (Criteria) this;
        }

        public Criteria andRzmreIsNull() {
            addCriterion("rzmre is null");
            return (Criteria) this;
        }

        public Criteria andRzmreIsNotNull() {
            addCriterion("rzmre is not null");
            return (Criteria) this;
        }

        public Criteria andRzmreEqualTo(Float value) {
            addCriterion("rzmre =", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreNotEqualTo(Float value) {
            addCriterion("rzmre <>", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreGreaterThan(Float value) {
            addCriterion("rzmre >", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreGreaterThanOrEqualTo(Float value) {
            addCriterion("rzmre >=", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreLessThan(Float value) {
            addCriterion("rzmre <", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreLessThanOrEqualTo(Float value) {
            addCriterion("rzmre <=", value, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreIn(List<Float> values) {
            addCriterion("rzmre in", values, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreNotIn(List<Float> values) {
            addCriterion("rzmre not in", values, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreBetween(Float value1, Float value2) {
            addCriterion("rzmre between", value1, value2, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzmreNotBetween(Float value1, Float value2) {
            addCriterion("rzmre not between", value1, value2, "rzmre");
            return (Criteria) this;
        }

        public Criteria andRzcheIsNull() {
            addCriterion("rzche is null");
            return (Criteria) this;
        }

        public Criteria andRzcheIsNotNull() {
            addCriterion("rzche is not null");
            return (Criteria) this;
        }

        public Criteria andRzcheEqualTo(Float value) {
            addCriterion("rzche =", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheNotEqualTo(Float value) {
            addCriterion("rzche <>", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheGreaterThan(Float value) {
            addCriterion("rzche >", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheGreaterThanOrEqualTo(Float value) {
            addCriterion("rzche >=", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheLessThan(Float value) {
            addCriterion("rzche <", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheLessThanOrEqualTo(Float value) {
            addCriterion("rzche <=", value, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheIn(List<Float> values) {
            addCriterion("rzche in", values, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheNotIn(List<Float> values) {
            addCriterion("rzche not in", values, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheBetween(Float value1, Float value2) {
            addCriterion("rzche between", value1, value2, "rzche");
            return (Criteria) this;
        }

        public Criteria andRzcheNotBetween(Float value1, Float value2) {
            addCriterion("rzche not between", value1, value2, "rzche");
            return (Criteria) this;
        }

        public Criteria andRqyeIsNull() {
            addCriterion("rqye is null");
            return (Criteria) this;
        }

        public Criteria andRqyeIsNotNull() {
            addCriterion("rqye is not null");
            return (Criteria) this;
        }

        public Criteria andRqyeEqualTo(Float value) {
            addCriterion("rqye =", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeNotEqualTo(Float value) {
            addCriterion("rqye <>", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeGreaterThan(Float value) {
            addCriterion("rqye >", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeGreaterThanOrEqualTo(Float value) {
            addCriterion("rqye >=", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeLessThan(Float value) {
            addCriterion("rqye <", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeLessThanOrEqualTo(Float value) {
            addCriterion("rqye <=", value, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeIn(List<Float> values) {
            addCriterion("rqye in", values, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeNotIn(List<Float> values) {
            addCriterion("rqye not in", values, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeBetween(Float value1, Float value2) {
            addCriterion("rqye between", value1, value2, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqyeNotBetween(Float value1, Float value2) {
            addCriterion("rqye not between", value1, value2, "rqye");
            return (Criteria) this;
        }

        public Criteria andRqmclIsNull() {
            addCriterion("rqmcl is null");
            return (Criteria) this;
        }

        public Criteria andRqmclIsNotNull() {
            addCriterion("rqmcl is not null");
            return (Criteria) this;
        }

        public Criteria andRqmclEqualTo(Float value) {
            addCriterion("rqmcl =", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclNotEqualTo(Float value) {
            addCriterion("rqmcl <>", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclGreaterThan(Float value) {
            addCriterion("rqmcl >", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclGreaterThanOrEqualTo(Float value) {
            addCriterion("rqmcl >=", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclLessThan(Float value) {
            addCriterion("rqmcl <", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclLessThanOrEqualTo(Float value) {
            addCriterion("rqmcl <=", value, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclIn(List<Float> values) {
            addCriterion("rqmcl in", values, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclNotIn(List<Float> values) {
            addCriterion("rqmcl not in", values, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclBetween(Float value1, Float value2) {
            addCriterion("rqmcl between", value1, value2, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRqmclNotBetween(Float value1, Float value2) {
            addCriterion("rqmcl not between", value1, value2, "rqmcl");
            return (Criteria) this;
        }

        public Criteria andRzrqyeIsNull() {
            addCriterion("rzrqye is null");
            return (Criteria) this;
        }

        public Criteria andRzrqyeIsNotNull() {
            addCriterion("rzrqye is not null");
            return (Criteria) this;
        }

        public Criteria andRzrqyeEqualTo(Float value) {
            addCriterion("rzrqye =", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeNotEqualTo(Float value) {
            addCriterion("rzrqye <>", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeGreaterThan(Float value) {
            addCriterion("rzrqye >", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeGreaterThanOrEqualTo(Float value) {
            addCriterion("rzrqye >=", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeLessThan(Float value) {
            addCriterion("rzrqye <", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeLessThanOrEqualTo(Float value) {
            addCriterion("rzrqye <=", value, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeIn(List<Float> values) {
            addCriterion("rzrqye in", values, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeNotIn(List<Float> values) {
            addCriterion("rzrqye not in", values, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeBetween(Float value1, Float value2) {
            addCriterion("rzrqye between", value1, value2, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRzrqyeNotBetween(Float value1, Float value2) {
            addCriterion("rzrqye not between", value1, value2, "rzrqye");
            return (Criteria) this;
        }

        public Criteria andRqylIsNull() {
            addCriterion("rqyl is null");
            return (Criteria) this;
        }

        public Criteria andRqylIsNotNull() {
            addCriterion("rqyl is not null");
            return (Criteria) this;
        }

        public Criteria andRqylEqualTo(Float value) {
            addCriterion("rqyl =", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylNotEqualTo(Float value) {
            addCriterion("rqyl <>", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylGreaterThan(Float value) {
            addCriterion("rqyl >", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylGreaterThanOrEqualTo(Float value) {
            addCriterion("rqyl >=", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylLessThan(Float value) {
            addCriterion("rqyl <", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylLessThanOrEqualTo(Float value) {
            addCriterion("rqyl <=", value, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylIn(List<Float> values) {
            addCriterion("rqyl in", values, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylNotIn(List<Float> values) {
            addCriterion("rqyl not in", values, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylBetween(Float value1, Float value2) {
            addCriterion("rqyl between", value1, value2, "rqyl");
            return (Criteria) this;
        }

        public Criteria andRqylNotBetween(Float value1, Float value2) {
            addCriterion("rqyl not between", value1, value2, "rqyl");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}